package com.ruov.test.controller;

import java.io.File;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.ruov.common.annotation.Anonymous;
import com.ruov.common.annotation.Download;
import com.ruov.common.config.RuoYiConfig;

/**
 * 文件下载示例控制器
 * 展示如何使用@Download注解实现各种类型的文件下载
 */
@RestController
@RequestMapping("/file")
@Anonymous
public class FileDownloadController {
    
    /**
     * 文件类型下载示例
     * 返回File对象会被自动转换为文件下载
     */
    @GetMapping("/download/file")
    @Download(fileName = "下载的文件.txt")
    public File downloadFile() {
        String filePath = RuoYiConfig.getDownloadPath() + "demo.txt";
        return new File(filePath);
    }
    
    /**
     * 系统路径下载示例
     * 返回本地文件路径会被自动转换为文件下载
     */
    @GetMapping("/download/path")
    @Download
    public String downloadByPath() {
        return RuoYiConfig.getDownloadPath() + "demo.txt";
    }
    
    /**
     * 网络URL下载示例
     * 返回网络URL会自动下载该URL指向的资源
     */
    @GetMapping("/download/url")
    @Download(fileName = "远程文件.pdf")
    public String downloadByUrl() {
        return "https://example.com/sample.pdf";
    }
}